home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / labyrinth / code.lua next >
Encoding:
Text File  |  2005-07-16  |  5.3 KB  |  155 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky04.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.         local roompole = createArray(1)
  15.  
  16.         if roompole[0] == 0 then
  17.             roompole[0] = random(2) + 1
  18.         end
  19.         room.uvod = 0
  20.         room.osundavani = 0
  21.         room.otvaru = 0
  22.         room.rikanka = random(600) + 200 * pokus
  23.  
  24.         return function()
  25.             if no_dialog() and isReady(small) and isReady(big) then
  26.                 if room.rikanka > 30 then
  27.                     room.rikanka = room.rikanka - 1
  28.                 elseif room.rikanka > 10 and look_at(small, snecek) then
  29.                     room.rikanka = room.rikanka - 1
  30.                 elseif room.rikanka > 0 and look_at(small, snecek) and small.Y == snecek.Y then
  31.                     room.rikanka = room.rikanka - 1
  32.                 end
  33.                 if room.uvod == 0 then
  34.                     adddel(random(20) + 10)
  35.                     switch(random(2)){
  36.                         [0] = function()
  37.                             addm(0, "bl-m-zvlastni0")
  38.                         end,
  39.                         [1] = function()
  40.                             addv(0, "bl-v-zvlastni1")
  41.                         end,
  42.                     }
  43.                     if pokus == roompole[0] then
  44.                         addm(10, "bl-m-funkce")
  45.                         addv(3, "bl-v-pozadi")
  46.                     end
  47.                     room.uvod = 1
  48.                 elseif room.osundavani == 0 and muchoblud.dir ~= dir_no and random(100) < 8 then
  49.                     room.osundavani = 1
  50.                     if pokus == 1 then
  51.                         pom1 = 3
  52.                     else
  53.                         pom1 = random(4)
  54.                     end
  55.                     adddel(20)
  56.                     if pom1 >= 1 then
  57.                         switch(random(2)){
  58.                             [0] = function()
  59.                                 addm(0, "bl-m-koral0")
  60.                             end,
  61.                             [1] = function()
  62.                                 addv(0, "bl-v-koral1")
  63.                             end,
  64.                         }
  65.                     end
  66.                     if pom1 >= 2 then
  67.                         addm(random(10) + 3, "bl-m-visi")
  68.                     end
  69.                     if pom1 >= 3 then
  70.                         addv(random(10) + 3, "bl-v-nevim"..random(2))
  71.                     end
  72.                 elseif room.osundavani < 2 and muchoblud.X <= 14 and random(100) < 5 then
  73.                     room.osundavani = 2
  74.                     addv(30, "bl-v-proc")
  75.                     addm(7, "bl-m-zeptej")
  76.                 elseif room.otvaru == 0 and muchoblud.X <= 14 and muchoblud.Y <= 6 and random(100) < 1 then
  77.                     room.otvaru = 1
  78.                     addm(random(100), "bl-m-tvar")
  79.                     addv(5, "bl-v-pestovany")
  80.                 elseif room.rikanka == 0 and look_at(small, snecek) then
  81.                     room.rikanka = -1
  82.                     adddel(10)
  83.                     planSet(snecek, "zprava", 1)
  84.                     addm(0, "bl-m-snecku0")
  85.                     planSet(snecek, "zprava", 3)
  86.                     addv(0, "bl-v-dost0")
  87.                     adddel(10)
  88.                     planSet(snecek, "zprava", 2)
  89.                     addm(0, "bl-m-snecku1")
  90.                     planSet(snecek, "zprava", 3)
  91.                     addv(0, "bl-v-dost1")
  92.                     adddel(10)
  93.                     planSet(snecek, "zprava", 2)
  94.                     addm(10, "bl-m-snecku2")
  95.                     planSet(snecek, "zprava", 3)
  96.                     addv(0, "bl-v-dost2")
  97.                 end
  98.             end
  99.         end
  100.     end
  101.  
  102.     -- -------------------------------------------------------------
  103.     local function prog_init_snecek()
  104.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  105.  
  106.         anim = ""
  107.         snecek.zprava = 0
  108.  
  109.         return function()
  110.             switch(snecek.zprava){
  111.                 [1] = function()
  112.                     snecek.zprava = 0
  113.                     setanim(snecek, "d4a1d1a2")
  114.                 end,
  115.                 [2] = function()
  116.                     snecek.zprava = 0
  117.                     setanim(snecek, "d11a1d1a2")
  118.                 end,
  119.                 [3] = function()
  120.                     snecek.zprava = 0
  121.                     setanim(snecek, "d3a1d2a0")
  122.                 end,
  123.             }
  124.             if anim ~= "" then
  125.                 goanim(snecek)
  126.             end
  127.         end
  128.     end
  129.  
  130.     -- --------------------
  131.     local update_table = {}
  132.     local subinit
  133.     subinit = prog_init_room()
  134.     if subinit then
  135.         table.insert(update_table, subinit)
  136.     end
  137.     subinit = prog_init_snecek()
  138.     if subinit then
  139.         table.insert(update_table, subinit)
  140.     end
  141.     return update_table
  142. end
  143. local update_table = prog_init()
  144.  
  145.  
  146. -- -----------------------------------------------------------------
  147. -- Update
  148. -- -----------------------------------------------------------------
  149. function prog_update()
  150.     for key, subupdate in pairs(update_table) do
  151.         subupdate()
  152.     end
  153. end
  154.  
  155.